#ifndef GENERATORDATA_H
#define GENERATORDATA_H

#include <QObject>
#include <QMap>
#include <QString>
#include <QStringList>
#include <QStringList>
#include <QBitArray>

class GeneratorData
{
public:
	GeneratorData();

public:
	QMap<QString, QString> &infoPlistData() { return m_infoPlistData; }
	QMap<QString, QString> &configXmlData() { return m_configXmlData; }
	QStringList &widgetSrcFiles() { return m_widgetSrcFiles; }
	QStringList &pluginSrcFiles() { return m_pluginSrcFiles; }
	QStringList &environmentVariables() { return m_environmentVariables; }

	// Paths
	QString basePath() const;
	QString widgetFileName() const;
	QString buildDirectory() const;
	QString projectDirectory() const;
	QString widgetDirectory() const;
	QString fwDirectory() const;
	QString mwDirectory() const;
        /**
          * Directory with the Qt sources of the generated
          * viewer application (e.g. main.cpp, mainwindow.h/cpp) in it.
          * Not necessarily the same as projectDirectory.
          */
        QString srcDirectory() const;

        QString m5DataDirectory() const;
        QString m5DebianDirectory() const;


        void initPaths(QString projectFile,
                       QString platformName);
	void clearAll();

	QString infoPlistValue(const QString &key) const;
	QString configXmlValue(const QString &key) const;

        bool isRemotelyCompiled() const;
        void setRemotelyCompiled(bool remotelyCompiled);

private:
	QMap<QString, QString>  m_infoPlistData;
	QMap<QString, QString>  m_configXmlData;
	QStringList             m_widgetSrcFiles;
	QStringList             m_pluginSrcFiles;
	QStringList             m_environmentVariables;
	QString                 m_basePath;
	QString                 m_buildDirectory;
	QString                 m_projectDirectory;
	QString                 m_widgetDirectory;
	QString                 m_fwDirectory;
	QString                 m_mwDirectory;
	QString                 m_widgetFileName;

        QString                 m_srcDirectory;
        QString                 m_m5DataDirectory;
        QString                 m_m5DebianDirectory;

        bool                    m_isRemotelyCompiled;

};

#endif // GENERATORDATA_H
